⭐一篇文章教会你在IDEA中玩转 JAR 包,构建属于你自己的库⭐ 您所在的位置:网站首页 idea 断点调试 工程依赖的jar包 ⭐一篇文章教会你在IDEA中玩转 JAR 包,构建属于你自己的库⭐

⭐一篇文章教会你在IDEA中玩转 JAR 包,构建属于你自己的库⭐

2024-07-08 18:53| 来源: 网络整理| 查看: 265

文章目录 前言0. 版本1. 什么是jar包?2. jar包的作用1. 实现代码重用2. 方便进行文件传输3. 可移植性4. 安全5. 包封装 3. 制作jar包的两种形式一、maven 创建JAR 包1. 利用 maven 构建自己的 Java 项目2. 编写自己的工具类3. 开始创建 JAR 包1. 利用 IDEA 内嵌的 Terminal2. 或者直接用 plugin 工具 package3. 构建完成的效果4. JAR 包的树结构和清单文件的内容 二、不依靠 maven 创建 JAR 包0. 依然用 maven 下的 Java 项目进行构建1. 进入Project Structure 页面2. 开始创建3. 指定程序入口4. Apply 完成操作5. 注意:经过上面的步骤还并没有真正构建 JAR 包,还得走下面的步骤6. 完成构建7. 构建完成的效果8. JAR 包的树结构和清单文件的内容 三、关于使用哪种方法的总结 4. 使用你自己构建的 JAR 包1. 进入 Project Structure,Libraries 下2. 选中自己的 JAR 包3. 选中要添加到的模块4. Apply 完成 JAR 包添加4. 添加后的效果5. 我的测试程序6. 我的测试效果 5. 移除 JAR 包

前言

本文讲解在 IDEA 中构建,使用和移除 JAR 包,初步告诉你如何构建自己的 Java 类库,通过细致的保姆教程让小白也能轻松上手,并且文章下方给出了其他有关 JAR 的优秀文章链接,为读者提供深入了解 JAR 包 以及 设计并构建属于自己的类库的途径。1

0. 版本

IDE:IntelliJ IDEA 2020.1 maven:apache-maven-3.8.1 platform:JDK11 language level(向下兼容的最低版本):JDK8

1. 什么是jar包?

JAR 全称:Java Archive File,意思就是 Java 档案文件,本质上 JAR 包是一种 ZIP 压缩文件,因而我们可以用 Windows 下的 WinRAR,WinZip 等压缩工具进行解压缩。不过相较于普通的 ZIP 文件,JAR 包不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被编译器和 JVM 等工具直接使用。像我们平时的Java开发中就经常引入各种 JAR 包依赖和组件。2

2. jar包的作用

了解了 JAR 包的基本知识,对其作用的了解也是必要的。通常来说 JAR 包有下面多种好处:

1. 实现代码重用

重复造轮子是没有意义的,我想没有任何一个人愿意对一种功能进行反复编写,那么这时将自己积累的各种工具类打包成 JAR 类库供日后使用将是一个不错的选择。

2. 方便进行文件传输

由于 JAR 包属于一种压缩格式,相较于下载对应的源文件,下载被压缩过的文件固然是一种更好的方式,另外 JAR 包将许多类文件和资源文件(文本,图片等)聚合打包,这样就不需要我们对一个个资源进行下载了。

3. 可移植性

JAR 包作为内嵌在 Java 平台内部处理的标准,能够在各种平台上直接使用。3

4. 安全

能够对 JAR 文件进行数字签名,只让能够识别数字签名的用户使用里面的东西

5. 包封装

能够让 JAR 包里面的文件依赖于同一版本的类文件。

3. 制作jar包的两种形式 一、maven 创建JAR 包 1. 利用 maven 构建自己的 Java 项目

参考文章链接

2. 编写自己的工具类 package binarysearch; import java.util.Arrays; public class BinarySearch { /** * 在这里写上方法的文档说明 */ public int search(int[] nums, int target) { int len = nums.length; Arrays.sort(nums); // 二分查找 int l = 0, r = len-1; while (l r = mid-1; }else if (target > nums[mid]){ l = mid+1; }else{ return mid; } } return -1; } } 3. 开始创建 JAR 包 1. 利用 IDEA 内嵌的 Terminal

操作:Alt + F2 -》 确保当前路径为项目路径 -》 输入命令: mvn clean package4 执行效果如下: mvn clean package

2. 或者直接用 plugin 工具 package

利用插件更方便 插件方式

3. 构建完成的效果

两种方式最终的效果一样 打包完成后的 JAR 包位置如下图: JAR 包位置

4. JAR 包的树结构和清单文件的内容 E:\MAVEN\JARTEST\TARGET\JARTEST-1.0-SNAPSHOT ├─cn │ └─edu │ └─huas │ └─st │ └─flameking │ BinarySearch.class │ └─META-INF │ MANIFEST.MF │ └─maven └─cn.edu.huas.st.flameking └─jarTest pom.properties pom.xml

MANIFEST.MF:5

Manifest-Version: 1.0 Created-By: Apache Maven 3.8.1 Built-By: flameking Build-Jdk: 11.0.6

pom.properties:

#Created by Apache Maven 3.8.1 groupId=cn.edu.huas.st.flameking artifactId=jarTest version=1.0-SNAPSHOT 二、不依靠 maven 创建 JAR 包 0. 依然用 maven 下的 Java 项目进行构建 1. 进入Project Structure 页面

Project Structure

2. 开始创建

创建 JAR 包

3. 指定程序入口

指定程序入口

4. Apply 完成操作

第一步初构建完成

5. 注意:经过上面的步骤还并没有真正构建 JAR 包,还得走下面的步骤

再构建

6. 完成构建

完成

7. 构建完成的效果

最终效果

8. JAR 包的树结构和清单文件的内容 E:\MAVEN\JARTEST\OUT\ARTIFACTS\JARTEST_JAR\JARTEST └─cn └─edu └─huas └─st └─flameking BinarySearch.class

MANIFEST.MF:

Manifest-Version: 1.0 Main-Class: cn.edu.huas.st.flameking.BinarySearchTest 三、关于使用哪种方法的总结 两种方式均需以一个项目或模块为单位进行 JAR 包的构建,当然如果直接在命令行窗口通过命令构建可以指定要打包的类文件,本文不做详细解释6不依赖 maven 构建的 JAR 没有包含 MANIFEST.MF 文件,但是经我试验它依然可以使用两种方式相比,在 maven 的管理下,JAR 包的构建显然更加简单在 maven 的管理下,JAR 包的更新也将更加简单毕竟构建的方式非常简单,每次更新过后,在执行一遍构建时的操作即可,与此相比,没有 maven 的加持下我们必须重新构建一个新的 JAR 包,同时还得更新替换所有依赖了原版本的项目。依据个人习惯,我平时一般利用 maven 管理构建项目,所以我更加偏向于使用 maven 提供的工具构建 JAR,读者可酌情选择。 4. 使用你自己构建的 JAR 包

那么在另一个项目我们该如何使用自己的 JAR 包呢?

1. 进入 Project Structure,Libraries 下

Libraries

2. 选中自己的 JAR 包

添加自己的 JAR 包

3. 选中要添加到的模块

模块

4. Apply 完成 JAR 包添加

Apply

4. 添加后的效果

效果

5. 我的测试程序 package cn.edu.huas.st.flameking; // 导入 BinarySearch.class 所在的包 import cn.edu.huas.st.flameking.BinarySearch; public class JarTest { public static void main(String[] args) { int[] nums = {43,15,20,41,11,17,14}; BinarySearch binarySearch = new BinarySearch(); int index = binarySearch.search(nums, 11); for(int i : nums){ System.out.printf("%d ", i); } System.out.println("目标的下标:" + index); } } 6. 我的测试效果

成功运行: 导入 JAR 包的测试结果

5. 移除 JAR 包

移除

构建你自己的 Java 库 ↩︎

JAR 包细节知识点 (https://mp.weixin.qq.com/s?__biz=MzI3ODc3NzQ4NQ==&mid=2247484812&idx=1&sn=ea724af133b29125f6b23f0a9d860aec) ↩︎

疯狂 Java 讲义(第二版)李刚编著 ↩︎

Maven 构建和测试 (https://www.runoob.com/maven/maven-build-test-project.html) ↩︎

认识 JAR 包 (https://mp.weixin.qq.com/s?__biz=MzIxMTI0NzcyMQ==&mid=2650932784&idx=1&sn=d8d8d5df53aa48de7f6e4b840fc45bc4) ↩︎

命令行操作 JAR 文件(https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jar.html) ↩︎



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有